/**
 * 服务端数据库初始化脚本
 * 在应用启动时自动初始化数据库
 */

import { initializeDatabase, testConnection } from './DataBase/database';

let isInitialized = false;

/**
 * 初始化数据库（仅在服务端运行）
 */
export async function initDatabase() {
  // 确保只在服务端运行
  if (typeof window !== 'undefined') {
    console.warn('数据库初始化只能在服务端运行');
    return;
  }

  if (isInitialized) {
    console.log('数据库已经初始化过了');
    return;
  }

  try {
    console.log('🚀 开始初始化数据库...');
    
    // 测试连接
    const isConnected = await testConnection();
    if (!isConnected) {
      throw new Error('数据库连接失败，请检查配置');
    }
    
    console.log('✅ 数据库连接成功');
    
    // 初始化数据库
    await initializeDatabase();
    
    isInitialized = true;
    console.log('✅ 数据库初始化完成');
    
  } catch (error) {
    console.error('❌ 数据库初始化失败:', error);
    throw error;
  }
}

/**
 * 检查数据库是否已初始化
 */
export function isDatabaseInitialized(): boolean {
  return isInitialized;
}

/**
 * 重置初始化状态（用于测试）
 */
export function resetInitialization(): void {
  isInitialized = false;
}
